package leetcode_400;

/**
 *@author 周杨
 *PowerOfFour_342 判断一个数是否是4的幂
 *describe:区分2的幂的用例 用掩码 AC 100%
 *2018年7月6日 下午7:53:51
 */
public class PowerOfFour_342 {

	public static void main(String[] args) {
		System.out.println(Integer.MAX_VALUE);
		for(int i=2;i<50;++i) {
			System.out.println((int)Math.pow(4, i));
		}
		System.out.println(1073741824%8);

	}
	/**
	 * describe:((num)&(num-1)) == 0  是2的幂 
	 *  (715827882&num) == 0  二进制奇数位单出现1就是4的幂 所以715827882（.... 010101010101010）
	 * 2018年7月6日 下午7:46:17
	 */
	public boolean isPowerOfFour(int num) {
		return (  (num>0) && ( ((num)&(num-1)) == 0 ) && (715827882&num) == 0 );
    }
}
